package com.yishan.service;

import com.github.pagehelper.PageInfo;
import com.yishan.domain.Module;
import com.yishan.domain.User;
import com.yishan.domain.User;
import java.util.List;
import org.apache.ibatis.annotations.Param;

/**
 * @Author yishan
 * @Date 2021/4/5 0005 12:55
 * @Version 1.0
 */
public interface UserService {

	/**
	 * 添加
	 *
	 * @param user
	 */
	void save(User user);

	/**
	 * 删除单个
	 *
	 * @param user
	 */
	void delete(String id);

	/**
	 * 删除多个
	 *
	 * @param ids
	 */
	void deleteMany(String ids);

	/**
	 * 修改
	 *
	 * @param user
	 */
	void update(User user);

	/**
	 * 根据id查询
	 *
	 * @param id
	 * @return
	 */
	User findById(String id);

	/**
	 * 查询全部
	 *
	 * @return
	 */
	List<User> findAll();

	/**
	 * 分页查询
	 *
	 * @param page
	 * @param size
	 * @return
	 */
	PageInfo findAll(int page, int size);

	void updateRole(String userId, String[] roleIds);

	/**
	 * 根据邮箱和密码登录
	 *
	 * @param email
	 * @param zd_pwd
	 * @return
	 */
	User login(String email, String zd_pwd);

	/**
	 * 根据用户id查询所有的菜单对象
	 *
	 * @param id
	 * @return
	 */
	List<Module> findModuleById(String id);
}
